package it.unipd.dei.bd.icineasti.resource;

import java.sql.Date;
import java.math.BigDecimal;

/**
 * Classe che rappresenta la relazione Noleggio.
 * 
 * @author Coccato Mattia
 * @version 1.00
 */
public class Noleggio {
/*              Table "public.noleggio"
 *    Column     |         Type          | Modifiers 
 *---------------+-----------------------+-----------
 * codicefilm    | integer               | not null
 * datainizio    | date                  | not null
 * datafine      | date                  | not null
 * prezzo        | valuta                | not null
 * pivafornitore | character varying(11) | not null
 * in2d          | boolean               | not null
 * in3d          | boolean               | not null
 */

	private final int codiceFilm;
	private final Date dataInizio;
	private final Date dataFine;
	private final BigDecimal prezzo;
	private String prezzoAsString;
	private final String partitaIvaFornitore;
	private final boolean isIn2D;
	private final boolean isIn3D;
	private final String nomeFornitore;
	
	public Noleggio (int codiceFilm, Date dataInizio, Date dataFine, BigDecimal prezzo, String partitaIvaFornitore, boolean isIn2D, boolean isIn3D, String nomeFornitore) {
		this.codiceFilm = codiceFilm;
		this.dataInizio = dataInizio;
		this.dataFine = dataFine;
		this.prezzo = prezzo;
		this.partitaIvaFornitore = partitaIvaFornitore;
		this.isIn3D = isIn3D;
		this.isIn2D = isIn2D;
		this.nomeFornitore = nomeFornitore;
	}

	public int getCodiceFilm() { return codiceFilm; }

	public Date getDataInizio()  { return dataInizio; }

	public Date getDataFine() { return dataFine; }

	public BigDecimal getPrezzo() { return prezzo; }

	public String getPartitaIvaFornitore() { return partitaIvaFornitore; }

	public boolean getIsIn2D() { return isIn2D; }
	public boolean getIsIn3D() { return isIn3D; }

	public String getNomeFornitore() { return nomeFornitore; }

	public String getPrezzoAsString() { return (prezzoAsString == null)? "€" + prezzo.toString() : prezzoAsString; }
	public void setPrezzoAsString(String prezzoAsString) {
		this.prezzoAsString = prezzoAsString;
	}
}
